SymPy
SymPy | |
---|---|
Тип | Система компьютерной алгебры |
Разработчик | SymPy Development Team |
Написана на | Python |
Операционная система | кросс-платформенное ПО |
Первый выпуск | 2007 |
Последняя версия | 1.10.1[1] (20 марта 2022 ) |
Лицензия | BSD License |
SymPy — это библиотека Python с открытым исходным кодом, используемая для символьных вычислений. Она предоставляет возможности компьютерной алгебры в виде отдельного приложения, как библиотека для других приложений или в Интернете как SymPy Live или SymPy Gamma. SymPy, аналогично другим библиотекам имеет стандартную установку и проверку, поскольку он полностью написан на Python с небольшими подпрограммами на других языках[2][3][4]. Такая унификация доступа в сочетании с простой и расширяемой кодовой базой на широко распространённом языке делает SymPy системой компьютерной алгебры с относительно низким барьером для входа.
SymPy включает в себя функции базовой символьной арифметики, математический анализ, алгебру и дискретную математику, элементы квантовой физики. Она может форматировать результат вычислений в виде кода LaTeX[2][3].
SymPy — это бесплатное программное обеспечение, работающее под новой лицензией BSD. Ведущие разработчики — Ондржей Чертик и Аарон Мерер. Её код начал писать в 2005 году Ондржей Чертик[5].
Функции
Библиотека SymPy разделена на ядро с множеством дополнительных модулей.
В настоящее время ядро SymPy содержит около 260 000 строк кода[6] (также включает исчерпывающий набор самотестирования: более 100 000 строк в 350 файлах с версии 0.7.5), а его возможности включают[2][3][7][8][9]:
Основные возможности
- Базовая арифметика: *, /, +, -, **
- Упрощение
- Расширение
- Функции: тригонометрические, гиперболические, экспоненциальные, корни, логарифмы, модуль, сферические гармоники, факториалы и гамма-функции, дзета-функции, многочлены, гипергеометрические, специальные функции,. . .
- Замена
- Целые числа произвольной точности, рациональные числа и числа с плавающей запятой
- Некоммутативные символы
- Сопоставление с образцом
Полиномы
- Основы арифметики: деление, НОД,. . .
- Факторизация
- Факторизация без квадратов
- Базы Грёбнера
- Разложение на частичную дробь
- Результант
Исчисление
- Пределы
- Дифференциация
- Интегрирование: реализована эвристика Риша — Нормана.
- Ряды Тейлора (ряды Лорана)
Решение уравнений
- Системы линейных уравнений
- Системы алгебраических уравнений, разрешимые в радикалах
- Дифференциальные уравнения
- Разностные уравнения
Дискретная математика
- Биномиальные коэффициенты
- Итоги
- Произведения
- Теория чисел: генерация простых чисел, проверка простоты, целочисленная факторизация,. . .
- Логические выражения[10]
Матрицы
- Основы арифметики
- Собственные значения и их собственные векторы, когда характеристический многочлен разрешим в радикалах
- Детерминанты
- Инверсия
- Решение
Геометрия
- Точки, линии, лучи, отрезки, эллипсы, круги, многоугольники,. . .
- Пересечения
- Касательные прямые
- подобие
Графика
Обратите внимание: для построения графика требуется внешний модуль matplotlib или Pyglet.
- Координатные модели
- Построение геометрических объектов
- 2D и 3D
- Интерактивный интерфейс
- Цвета
- Анимации
Физика
- Единицы измерения
- Классическая механика
- Механика сплошной среды[11]
- Квантовая механика
- Гауссова оптика
- Алгебра Паули
Статистика
Комбинаторика
- Перестановки
- Комбинации
- Перегородки
- Подмножества
- Группа перестановок: Полиэдральная, Рубиковая, Симметричная,. . .
- Последовательность Прюфера и коды Грея
Печать
- Структурная распечатка: красивая печать в ASCII / Unicode, LaTeX
- Генерация кода: C, Fortran, Python
Зависимости
Начиная с версии 1.0, SymPy имеет пакет mpmath в качестве необходимого.
Есть несколько дополнительных зависимостей, которые могут расширить его возможности:
- gmpy: Если установлен gmpy, полиномиальный модуль SymPy будет автоматически использовать его для более быстрых вычислений. Это может повысить производительность некоторых операций в несколько раз.
- matplotlib: если установлен matplotlib, SymPy может использовать его для построения графиков.
- Pyglet: альтернативный пакет для построения графиков.
Примечания
- ↑ SymPy 1.10.1 .
- ↑ 2,0 2,1 2,2 SymPy homepage . Дата обращения: 13 октября 2014. Архивировано 20 ноября 2019 года.
- ↑ 3,0 3,1 3,2 Joyner (2012). «Open source computer algebra systems: SymPy». ACM Communications in Computer Algebra 45 (3/4): 225–234. doi:10.1145/2110170.2110185.
- ↑ Meurer (2017-01-02). «SymPy: symbolic computing in Python» (en). PeerJ Computer Science 3: e103. doi:10.7717/peerj-cs.103. ISSN 2376-5992.
- ↑ https://github.com/sympy/sympy/wiki/SymPy-vs. . Дата обращения: 3 июля 2021. Архивировано 17 сентября 2021 года.
- ↑ Sympy project statistics on Open HUB . Дата обращения: 13 октября 2014. Архивировано 17 октября 2014 года.
- ↑ Constrained multibody dynamics with Python: From symbolic equation generation to publication // [1]. Архивная копия от 3 июня 2018 на Wayback Machine
- ↑ Rocklin (2012). «Symbolic Statistics with SymPy». Computing in Science & Engineering 14 (3): 88–93. doi:10.1109/MCSE.2012.56.
- ↑ Asif (2014). «Automatic code generator for higher order integrators». Computer Physics Communications 185 (5): 1461–1472. arXiv:1310.2111. doi:10.1016/j.cpc.2014.01.012. .
- ↑ Assumptions Module — SymPy 1.4 documentation . docs.sympy.org. Дата обращения: 5 июля 2019. Архивировано 5 июля 2019 года.
- ↑ Continuum Mechanics — SymPy 1.4 documentation . docs.sympy.org. Дата обращения: 5 июля 2019. Архивировано 5 июля 2019 года.